A file management system (or “file-system”) typically refers to the organizational structure used to order and track files. A file-system can be used by a computer program to access data typically arranged as various files in accordance with the file-system. Typically, the software that controls the allocation and usage of hardware resources (“Operating System”) can access the file-system. As such, the operating system can be used, for example, by an application program to access files stored on a computer readable medium (e.g., hard disk)
A file-system also defines the way files are named and where they are placed logically for storage and retrieval. The DOS, Windows, OS/2, Macintosh, and UNIX-based operating systems all have file-systems in which files are placed somewhere in a logical hierarchical (tree) structure. A file is placed in a directory (or folder in Windows) or subdirectory at the desired place in the tree structure. File systems specify conventions for naming files. These conventions include the maximum number of characters in a name, which characters can be used, and, in some systems, how long the file name suffix can be. A file-system also includes a format for specifying the path to a file through the structure of directories.
File-systems that are predominantly in use today include the File Attribute Table (FAT) file-system (e.g., FAT32) typically used by Windows operating system and the Hierarchical File System (HFS) file-system typically used by Macintosh Operating Systems.
The FAT file-system is primarily known by the File Allocation Table (FAT) which it maintains as a map of the clusters (basic units of logical storage) that a file has been stored in. A new file is typically stored in one or more clusters which are not necessarily next to each other. A typical cluster size is 2,048 bytes, 4,096 bytes, or 8,192 bytes. The Windows operating system creates a FAT entry for the new file. This records where each cluster is located and their sequential order. When a file is read, the Windows operating system reassembles the file from the clusters and places it as an entire file where it can be read, for example, by an application program (a word processor) and displayed to a user. Until Windows 95 OSR2 (OEM Release 2), DOS and Windows file allocation table entries were 16 bits in length, limiting hard disk size to 128 megabytes, assuming a 2,048 size cluster. Up to 512 megabyte support is possible assuming a cluster size of 8,192 but at the cost of using clusters inefficiently. DOS 5.0 and later versions provide for support of hard disks up to two gigabytes with the 16-bit FAT entry limit by supporting separate FATs for up to four partitions. With 32-bit FAT entry (FAT32) support in Windows 95 OSR2, the largest size hard disk that can be supported is about two terabytes. However, personal computer users are more likely to take advantage of FAT32 with 5 or 10 gigabyte drives.
The HFS file-systems have similiar features and capabilities as the FAT file-systems. Apple Computers, Inc (or Apple) introduced HFS in 1985 as the new file system for Macintosh computers. It superseded the Macintosh File System (MFS) which was a flat file system, used only on the earliest Mac models. Because Macintosh computers typically use richer data than other commonly available file systems such as FAT used by DOS or the original Unix file system would allow, Apple developed a new more appropriate file system, rather than adopting an existing specification. For example, HFS permits filenames up to 31 characters in length, supports metadata and dual forked (separate data and resource forks per file) files. In 1998, Apple Computers introduced HFS Plus to make further enhancements including a more efficient allocation of disk space.
Typically, a computer readable medium (e.g., hard disk) is prepared for storing files by a process known as “formatting.” Initially, the computer readable medium is formatted for a particular file system (e.g., FAT file system or HFS). However, this file-system can subsequently be converted to another file-system by a process known as re-formatting the disk or effectively formatting it for another file system. Prior to reformatting, any data on the computer readable medium can be stored temporary in another place. The stored data can then be copied back to the computer readable medium after it has been successfully re-formatted.